Software defined networking (SDN) is an approach to computer networking that permits network administrators to manage network services through the abstraction of lower level functionality. For example, this abstraction is accomplished by decoupling the functionality that would normally make decisions about where traffic is sent (i.e., the control plane) from the underlying layers that forward traffic to the selected destination (i.e., the data plane).
In one example, when a packet arrives at a conventional networking switch, predefined rules instruct the switch where to forward the packet. In general, every packet may be sent to the same destination and along the same path thus treating all similar packets in the same manner. However, the goal of SDN is to enable network engineers and administrators with the ability to shape traffic from a centralized control console without having to interact with the individual switches. The shaping of traffic includes prioritizing, de-prioritizing and blocking specific types of packets at a granular level of control.
SDN implementations are emerging architectures that offer dynamic, manageable, cost-effective, and adaptable approaches for the high-bandwidth, dynamic nature of today's applications. SDN architectures decouple network control and forwarding functions, enabling network control to become directly programmable and the underlying infrastructure to be abstracted from applications and network services.